home *** CD-ROM | disk | FTP | other *** search
- /*
- ==============================================================================
- WordUp Graphics Toolkit Version 5.0
- Demonstration Program 27
-
- Draws some circles, captures a block, and skews the block while rotating
- the colors.
-
- *** PROJECT ***
- This program requires the file WGT5_WC.LIB to be linked.
-
- *** DATA FILES ***
- NONE
- WATCOM C++ VERSION
- ==============================================================================
- */
-
- #include <conio.h>
- #include <wgt5.h>
-
-
- void main(void)
- {
- block skewit; /* Pointer to our block */
- color palette[256]; /* Our palette */
- short oldmode; /* Store initial video mode */
- short i = 0; /* Loop counter */
-
- if ( !vgadetected () )
- {
- printf("Error - VGA card required for any WGT program.\n");
- exit (0);
- }
- printf ("WGT Example #27\n\n");
- printf ("A bitmap is skewed left and right while the palette is rotated.\n");
- printf ("Press a key to end the program at any time.\n");
- printf ("\n\nPress any key to continue.\n");
- getch ();
-
-
- oldmode = wgetmode (); /* Gets the current mode */
- vga256 (); /* Initialize graphics mode */
-
- wreadpalette (0, 255, palette); /* Store our current palette */
-
- wcls (0); /* Clear screen with black */
-
- for (i = 100; i > 0; i--) /* Draw 100 filled circles */
- {
- wsetcolor (i);
- wfill_circle (160, 100, i);
- }
-
- wsetcolor (0); /* Use black as active color */
- wbar (0, 0, 104, 199); /* Draw two solid rectangles */
- wbar (216, 0, 319, 199);
- skewit = wnewblock (100, 40, 220, 160); /* Grab a block for skewing */
-
- wcls (0); /* Clear screen with black */
- do
- {
- for (i = -100; i < 100; i += 2) /* Skew image 2 pixels at a time */
- {
- wretrace ();
- wskew (100, 40, skewit, i);
- wcolrotate (1, 100, 0, palette); /* Rotate palette too */
- wsetpalette (1, 100, palette); /* And show palette changes */
- }
- for (i = 100; i > -100; i -= 2) /* Skew image back to starting pos */
- {
- wretrace ();
- wskew (100, 40, skewit, i);
- wcolrotate (1, 100, 0, palette); /* Rotate palette */
- wsetpalette (1, 100, palette); /* Show palette changes */
- }
- } while (!kbhit ()); /* Stop when key is pressed */
-
- getch ();
- wsetmode (oldmode); /* Restore initial video mode */
- }
-